package prog070;

import geral.Funcao;
import geral.Integravel;
import geral.JanelaIntegral;

//Oi

public class Prog070 implements Integravel{
	private double numeroIntervalos, min, max;
	private Funcao f;
	private JanelaIntegral janela;
	
	private double h;

	public Prog070() {
		janela = new JanelaIntegral(this);
	}
	
	@Override
	public void setFuncao(Funcao f) {
		this.f = f;
	}

	@Override
	public void setMin(double min) {
		this.min = min;
	}

	@Override
	public void setMax(double max) {
		this.max = max;
	}

	@Override
	public void setDivisoes(double n) {
		this.numeroIntervalos = n;
	}

	@Override
	public double calcula() {
		h = (max-min)/numeroIntervalos;
		
		double conta = f.executaFuncao(min);
		int j = 1;
		
		for(double i = min+h;i<max;i += h, j++){		
			conta += ((j%2 == 0)? 2:4) * f.executaFuncao(i);
		}
		conta += f.executaFuncao(max);
		return (conta*h)/3;
	}
	
	public static void main(String[] args) {
		new Prog070();
	}
}
